public class CharCompress {
    public String compressString(String S) {
//        StringBuffer com = new StringBuffer("");
//        for (int i = 0; i < S.length(); i++) {
//            int count=0;
//            for (int j = i; j < S.length(); j++) {
//                if(S.charAt(i)==S.charAt(j)){
//                    count++;
//                }else{
//                    i = j-1;
//                    break;
//                }
//            }
//            //i += (count-1);
//            com.append(S.charAt(i)).append(count);
//        }
//        return com.length()>=S.length()?S: com.toString();

        if(S.equals("")){
            return null;
        }
        StringBuffer com = new StringBuffer("");
        char[] chars = S.toCharArray();
        int count=0;
        char t = chars[0];
        for (char c : chars) {
            if(t==c){
                count++;
            }else{
                com.append(t).append(count);
                t = c;
                count = 1;
            }
        }
        com.append(t).append(count);
        return com.length()>=S.length()?S: com.toString();
    }

    public static void main(String[] args) {
        String str = new CharCompress().compressString("abbccd");
        System.out.println(str);
    }

}
